/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.catosist.run.application.Util;

import com.catosist.run.services.ResultadoVentaDTO;
import java.util.ArrayList;
import java.util.List;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;

/**
 *
 * @author igorov
 */
public class ReporteVentaDataSource implements JRDataSource{

    private List<ResultadoVentaDTO> listaResultados = new ArrayList<ResultadoVentaDTO>();
    private int indiceResultadoActual = -1;

    public Object getFieldValue(JRField jrf) throws JRException {
        Object valor = null;

        if ("anho".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getAnho();
        } else if ("mes".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getMes();
        } else if ("montos".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getMontos();
        } else if ("igvs".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getIgvs();
        } else if ("subtotales".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getSubtotales();
        } else if ("detracciones".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getDetracciones();
        } else if ("totales".equals(jrf.getName())) {
            valor = listaResultados.get(indiceResultadoActual).getTotales();
        }

        return valor;
    }

    public boolean next() throws JRException {
        return ++indiceResultadoActual < listaResultados.size();
    }

    public void addResultado(ResultadoVentaDTO resultadoVentaDTO) {
        this.listaResultados.add(resultadoVentaDTO);
    }
}
